Software development teams often support multiple software applications and tools across many different domains. The complexity of modern software and the interdependent nature of various applications and/or tools may induce equally complex software updates to support an entire software environment. For example, adding a plurality features and bug fixes to a docket management application may generate an update that includes updating a plurality of applications on which the docket management application depends (e.g. a word processor, libraries, a web browser, etc.). Development devices often distribute a large software update that includes the files to update a software application and the dependent software. Large software updates tie up the resources of client devices including bandwidth, processing time, and downtime when downloading and installing the software update. Further, some client devices may not operate some of the software being updated. For example, a client device may operate the docket management application, but not the web browser. In that case, the large software update may disrupt client devices with excessive processing time in downloading and installing a software update, some of which provides updates to software the client device does not operate. Further, the extra code in a software update may modify shared libraries used by other applications of the client device. Once modified other application may behave erratically or cease to operate. Accordingly, there is a need in the art to identify source code deliverables to include in a plurality discrete software packages that may be independently transmitted and installed.